2009-06-21 33 views

Trả lời

4

XML về cơ bản chỉ chứa các chuỗi, mặc dù XSD cũng xác định một số kiểu nguyên thủy khác. Tuy nhiên, GUID không nằm trong số đó.

Bạn có thể xác định lược đồ của riêng mình cho loại GUID. Rất nhiều người đã làm điều này. Đây là cách nhóm Microsoft OneNote đã thực hiện: http://msdn.microsoft.com/en-us/library/aa203890(office.11).aspx.

+0

Tôi cũng thấy bài viết cho điều đó. Làm cách nào để bạn liên kết SimpleType với phần tử của bạn, thuộc tính xml, hãy nói

13

Bạn có thể xác định loại tùy chỉnh đơn giản của riêng bạn "GUID" bằng cách hạn chế một chuỗi sử dụng một biểu thức chính quy như thế này:

<xs:simpleType name="GUID"> 
    <xs:restriction base="xs:string"> 
    <xs:pattern value="([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})|(\{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\})"/> 
    </xs:restriction> 
</xs:simpleType> 
+0

Tôi đã thử điều đó nhưng nó vẫn quay trở lại với 'Mẫu ràng buộc không thành công. ' trong tập tin: thông báo lỗi khi nó gặp nó. –

+1

Odd ... chúng tôi có điều này trong sản xuất và tất cả mọi thứ hoạt động tốt .... khi nào và làm thế nào bạn đang sử dụng nó, và nơi nào xảy ra lỗi? –

1

Tôi đã sussed nó ra. Đôi khi nó giúp đọc các tài liệu. Đây là cách nó sẽ hoạt động.

<xs:simpleType name="GUID"> 
     <xs:restriction base="xs:string"> 
      <xs:pattern value="([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})|(\{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\})"/> 
     </xs:restriction> 
    </xs:simpleType> 


    <xs:element name="ruleident"> 
    <xs:complexType> 
     <xs:attribute name="ruleGuid" > 
     <xs:simpleType> 
     <xs:restriction base ="GUID"> 
      </xs:restriction> 
     </xs:simpleType> 
     </xs:attribute > 
    </xs:complexType > 
    </xs:element> 
Các vấn đề liên quan