XML 스키마를 사용하여 적응형 양식 만들기
작성 대상:
- 초급
- 중간
- 사용자
- 개발자
새 적응형 양식 만들기또는 AEM Sites 페이지에 적응형 양식 추가작업을 할 때 현대적이고 확장 가능한 데이터 캡처 핵심 구성 요소를 사용하는 것이 좋습니다. 이러한 구성 요소는 적응형 양식 만들기 작업이 대폭 개선되어 우수한 사용자 경험을 보장할 수 있게 되었음을 나타냅니다. 이 문서에서는 기초 구성 요소를 사용하여 적응형 양식을 작성하는 이전 접근법에 대해 설명합니다.
사전 요구 사항
XML 스키마를 양식 모델로 사용하여 적응형 양식을 작성하려면 XML 스키마에 대한 기본적인 이해가 필요합니다. 또한 이 문서 전에 다음 내용을 읽어 보는 것이 좋습니다.
XML 스키마를 양식 모델로 사용
Experience Manager Forms에서는 기존 XML 스키마를 양식 모델로 사용하여 적응형 양식을 만들 수 있습니다. 이 XML 스키마는 조직의 백엔드 시스템에서 데이터를 생성하거나 사용하는 구조를 나타냅니다.
XML 스키마 사용의 주요 기능은 다음과 같습니다.
- XSD의 구조는 적응형 양식의 작성 모드에서 콘텐츠 파인더 탭에 트리로 표시됩니다. 요소를 XSD 계층에서 적응형 양식으로 끌어서 추가할 수 있습니다.
- 연결된 스키마와 호환되는 XML을 사용하여 양식을 미리 채울 수 있습니다.
- 제출 시 사용자가 입력한 데이터는 관련 스키마에 맞는 XML로 제출됩니다.
XML 스키마는 간단하고 복잡한 요소 유형으로 구성됩니다. 요소에는 요소에 규칙을 추가하는 속성이 있습니다. 이러한 요소와 속성을 적응형 양식으로 드래그하면 해당 적응형 양식 구성 요소에 자동으로 매핑됩니다.
적응형 양식 구성 요소와 XML 요소를 매핑하면 다음과 같습니다.
xs:string
xs:boolean
xs:unsignedInt
xs:xs:int
xs:decimal
- 모든 유형의 숫자 값
xs:date
xs:enumeration
샘플 XML 스키마
다음은 XML 스키마의 예입니다.
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema targetNamespace="https://adobe.com/sample.xsd"
xmlns="https://adobe.com/sample.xsd"
xmlns:xs="https://www.w3.org/2001/XMLSchema"
>
<xs:element name="sample" type="SampleType"/>
<xs:complexType name="SampleType">
<xs:sequence>
<xs:element name="leaderName" type="xs:string" default="Enter Name"/>
<xs:element name="assignmentStartBirth" type="xs:date"/>
<xs:element name="gender" type="GenderEnum"/>
<xs:element name="noOfProjectsAssigned" type="IntType"/>
<xs:element name="assignmentDetails" type="AssignmentDetails"
minOccurs="0" maxOccurs="10"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AssignmentDetails">
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="durationOfAssignment" type="xs:unsignedInt" use="required"/>
<xs:attribute name="numberOfMentees" type="xs:unsignedInt" use="required"/>
<xs:attribute name="descriptionOfAssignment" type="xs:string" use="required"/>
<xs:attribute name="financeRelatedProject" type="xs:boolean"/>
</xs:complexType>
<xs:simpleType name="IntType">
<xs:restriction base="xs:int">
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="GenderEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="Female"/>
<xs:enumeration value="Male"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
XML 스키마를 사용하여 필드에 특수 속성 추가
다음 특성을 XML 스키마 요소에 추가하여 관련 적응형 양식의 필드에 특수 속성을 추가할 수 있습니다.
use=required
필드를 표시합니다.
default="default value"
minOccurs="3"
최소 발생 횟수 지정
(반복 가능한 하위 양식(복합 유형))
maxOccurs="10"
최대 발생 횟수 지정
(반복 가능한 하위 양식(복합 유형))
- 요소 이름의 첫 번째 문자 대문자로 바꾸기
- 카멜 대/소문자 경계에 공백을 삽입합니다.
userFirstName
스키마 요소를 추가하는 경우 적응형 양식에서 생성된 캡션은 User First Name
입니다.적응형 양식 구성 요소에 대해 허용되는 값 제한
다음 제한 사항을 XML 스키마 요소에 추가하여 적응형 양식 구성 요소에 허용되는 값을 제한할 수 있습니다.
totalDigits
- 숫자 상자
- 숫자 스텝퍼
maximum
- 숫자 상자
- 숫자 스텝퍼
- 날짜 선택기
minimum
- 숫자 상자
- 숫자 스텝퍼
- 날짜 선택기
exclusiveMaximum
true인 경우 양식의 구성 요소에 지정된 숫자 값 또는 날짜는 최대 속성에 지정된 숫자 값 또는 날짜보다 작아야 합니다.
false인 경우 양식의 구성 요소에 지정된 숫자 값 또는 날짜는 최대 속성에 지정된 숫자 값 또는 날짜보다 작거나 같아야 합니다.
- 숫자 상자
- 숫자 스텝퍼
- 날짜 선택기
exclusiveMinimum
true인 경우 양식의 구성 요소에 지정된 숫자 값 또는 날짜는 최소 속성에 지정된 숫자 값 또는 날짜보다 커야 합니다.
false인 경우 양식의 구성 요소에 지정된 숫자 값 또는 날짜는 최소 속성에 지정된 숫자 값 또는 날짜보다 크거나 같아야 합니다.
- 숫자 상자
- 숫자 스텝퍼
- 날짜 선택기
minLength
- 텍스트 상자
maxLength
- 텍스트 상자
length
- 텍스트 상자
fractionDigits
- 데이터 형식이 float 또는 decimal인 숫자 상자
pattern
문자 시퀀스를 지정합니다. 문자가 지정된 패턴을 따르는 경우 구성 요소가 문자를 허용합니다.
패턴 속성은 해당 적응형 양식 구성 요소의 유효성 검사 패턴에 매핑됩니다.
- XSD 스키마에 매핑된 모든 적응형 양식 구성 요소
자주 묻는 질문
트리의 어떤 요소가 어떤 XML 요소와 연결되어 있는지 어떻게 알 수 있습니까?
콘텐츠 파인더에서 요소를 두 번 클릭하면 팝업 창에 필드 이름과 bindRef
속성이 표시됩니다. 이 속성은 트리 요소를 스키마의 요소 또는 속성에 매핑합니다.
bindRef
필드는 트리 요소와 스키마의 요소 또는 속성 간의 연관성을 보여 줍니다.
bindRef
값에 @
기호가 있습니다. 예: /config/projectDetails/@duration
반복 가능한 하위 양식(minOccours 또는 maxOccurs 값이 1보다 큼)에 대해 하위 양식(복합 유형에서 생성된 구조)의 개별 요소를 드래그할 수 없는 이유는 무엇입니까?
반복 가능한 하위 양식에서는 전체 하위 양식을 사용해야 합니다. 선택 필드만 사용하려는 경우 전체 구조를 사용하고 원하지 않는 구조는 삭제하십시오.
콘텐츠 파인더에 긴 복잡한 구조가 있습니다. 특정 요소를 찾으려면 어떻게 해야 합니까?
다음 두 가지 옵션이 있습니다.
- 트리 구조를 스크롤합니다.
- 검색 상자를 사용하여 요소 찾기
bindRef란 무엇입니까?
bindRef
은(는) 적응형 양식 구성 요소와 스키마 요소 또는 특성 간의 연결입니다. 출력 XML에서 이 구성 요소 또는 필드에서 캡처한 값을 사용할 수 있는 XPath
을(를) 지시합니다. 미리 채워진(미리 채워진) XML에서 필드 값을 미리 채울 때도 bindRef
이(가) 사용됩니다.